package com.dashboard.domain;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(name = "valor_calculo_contabil")
public class ValorCalculoContabil implements Serializable
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 8951974101132798292L;
	
	@EmbeddedId
	private IdentificadorValorCalculoContabil id;

	@Column(name = "valor_orcado")
	private Float valorOrcado;
	
	@Column(name = "valor_real")
	private Float valorReal;
		
	@ManyToOne
	@JoinColumn(name = "id_calculo_contabil", insertable = false, updatable = false)
	private CalculoContabil calculoContabil;

	/**
	 * Construtor default.
	 */
	public ValorCalculoContabil()
	{
		
	}

	/**
	 * @return the id
	 */
	public IdentificadorValorCalculoContabil getId()
	{
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(IdentificadorValorCalculoContabil id)
	{
		this.id = id;
	}

	/**
	 * @return the valorOrcado
	 */
	public Float getValorOrcado()
	{
		return valorOrcado;
	}

	/**
	 * @param valorOrcado the valorOrcado to set
	 */
	public void setValorOrcado(Float valorOrcado)
	{
		this.valorOrcado = valorOrcado;
	}

	/**
	 * @return the valorReal
	 */
	public Float getValorReal()
	{
		return valorReal;
	}

	/**
	 * @param valorReal the valorReal to set
	 */
	public void setValorReal(Float valorReal)
	{
		this.valorReal = valorReal;
	}
	
	/**
	 * @return the calculoContabil
	 */
	public CalculoContabil getCalculoContabil()
	{
		return calculoContabil;
	}

	/**
	 * @param calculoContabil the calculoContabil to set
	 */
	public void setCalculoContabil(CalculoContabil calculoContabil)
	{
		this.calculoContabil = calculoContabil;
	}
	
	/**
	 * Realiza a soma dos valores real e or&ccedil;ado.
	 * 
	 * @param valorCalculoContabil a entidade atual com os valores somados
	 */
	@Transient
	public void soma(ValorCalculoContabil valorCalculoContabil)
	{
		this.setValorOrcado(this.getValorOrcado() + valorCalculoContabil.getValorOrcado());
		this.setValorReal(this.getValorReal() + valorCalculoContabil.getValorReal());
	}
}